<?php 
namespace app\superadmin\controller;
use app\superadmin\model\Index as IndexModel;
//继承Base控制器
class Order extends Base
{
    public function orderlist()
    {
       $order_id= \think\Db::name('order')        //查询订单,刚开始查询订单的时候 就把num的值取出来了
                ->select();
       //var_dump($order_id);die;
      $lists=array();
      for($i=0;$i<count($order_id);$i++) 
      {    //根据订单查询food
         $order_id[$i]['flag']=0;
      }
        $i=0;
        foreach ($order_id as $key => $value) 
        {
           $list=array();
           $list['order_id']=$value['order_id'];   //获取订单号
           $list['flag']=0;
           $order_id[$i]['flag']=1;
           $id['food_id']=$value['food_id'];  
           $food= \think\Db::name('food')    //通过订单的food_id查询food详情
                ->field('foodname')
                ->where($id)
                ->select();
           $num= \think\Db::name('order')    //通过订单的food_id查询num，第一次循环的时候是将num与food_id相对应
                ->field('num')
                ->where($id)
                ->select(); 
           $sum= \think\Db::name('order')    //通过订单的food_id查询sum，第一次循环的时候是将sum与food_id相对应
                ->field('sum')
                ->where($id)
                ->select();                     
           $list['foodname'][]=$food[0]['foodname'];  //将查到的数据保存到一个数组里
           $list['num'][]=$value['num'];
           $list['sum'][]=$value['sum'];//每一个子订单的总价,根据food_id直接从order表中读取,使得sum与food_id相对应
           $a=$list["sum"];
           $list["total"]=array_sum($a);//每一个父订单的总价，由若干个子订单的总价相加得到
           $i++;
           foreach ($order_id as $k => $v) //一个数组里我要找到和值相同的     那么我就在复制一个一模一样的数组，将这个数组里边的每一个值与另一个数组每一个比较，如果相等就把他所对应的信息保存起来，就相当于第二个循环中的数组就是用来和第一个循环中的数组进行数据比较的,也就是把相同的订单号的订单信息保存在一起

           {       
               //将相同的订单号里的food信息保存在一起
               if (($value['order_id']==$v['order_id'])&&$v['flag']!=1) 
               {
                   $id['food_id']=$v['food_id'];
                   $food= \think\Db::name('food')
                        ->field('foodname')
                        ->where($id)
                        ->select();

                   // $num= \think\Db::name('order') //num的值已经出来了在order_id保存着，只不过通过第二次循环就可以拿到
                   //     ->field('num')
                   //     ->where($id)
                   //     ->select();     
                   $list['foodname'][]=$food[0]['foodname'];
                   $list["num"][]=$v["num"];
                   $list["sum"][]=$v["sum"];
                   $a=$list["sum"];
                   // $b=array_sum($a);
                   $list["total"]=array_sum($a);
               }
           }
           $lists[]=$list; 
           //var_dump($list);die;
        }
        $a=array();
        $a=$lists;
        //var_dump($a);die;
        //var_dump($lists);die;
        foreach ($lists as $key => $value) 
        {    
            //去掉重复的订单信息
            foreach ($a as $k => $v) 
            {
               if (($value['order_id']==$v['order_id'])&&($key!=$k)&&($v['flag']!=1)) 
               {
                  unset($lists[$k]);    
               } 
               $a[$key]['flag']=1;
            }
        }
        //var_dump($lists);die;
       $this->assign("lists",$lists);

    //var_dump($lists);die;
  // die; 
       //  foreach($order_id as $one){//将二维数组转换成一维数组
       //      $result[]=$one['order_id'];
       //  }
 
      
       // foreach ($order_id as $key => $value) {
       //  $lists["order_id"]=$value;
       
        // $orderres[]= \think\Db::name('order')
        //       ->alias('a')
        //       ->join('__FOOD__ b', 'a.food_id =b.food_id')
        //       ->field('b.foodname')
        //       ->where('a.order_id',$result[$i])
        //       ->select();
         // var_dump($value);    
      // }
       //获得每个订单对应的菜品
      //   $orderres=array();
      // for($i=0;$i<count($result);$i++){
      //  $orderres[]= \think\Db::name('order')
      //        ->alias('a')
      //        ->join('__FOOD__ b', 'a.food_id =b.food_id')
      //        ->field('b.foodname')
      //        ->where('a.order_id',$result[$i])
      //        ->select();
      //   //  $res[]=$orderres;
      //   // dump($orderres);
      //  }
      //  var_dump($orderres);die;
       // $this->assign('orderres',$res);



      //    foreach($res as $k=>$v){
      //    foreach($v as $kk=>$vv){
      //      $new_arr[] = $vv;
      //   }
      // }
      //  //var_dump($new_arr);die;
      //  //$this->assign('orderres',$new_arr);

      //  foreach($res as $k=>$v){
      //   $food=array();
      //    foreach($v as $key=>$value){
      //      $foodname=$value['foodname'];
      //   }
      // }

     return $this->fetch();
    } 


    public function order_detail()
    {
       $orderid=input('order_id');
       //echo $id;die;
       //查询订单的订餐信息
       $roomres= \think\Db::name('room')
             ->alias('a')
             ->join('__DINING__ b', 'a.shop_id =b.shop_id')
             ->join('__USERS__ c', 'a.uid =c.id')
             ->join('__ORDER__ d', 'a.order_id =d.order_id')
             ->field('a.id,a.ordertime,a.isorder,a.suggesttime,a.takeoutaddr,a.order_id,a.comment,a.state,b.shopname,c.username,d.num,d.sum')
             ->where('a.order_id',$orderid)
             ->find();
       $this->assign('roomres',$roomres);


      //查询订单的餐品信息
     $order_id= \think\Db::name('order') 
                ->where('order_id',$orderid)       //查询订单,刚开始查询订单的时候 就把num的值取出来了
                ->select();
       //var_dump($order_id);die;
      $lists=array();
      for($i=0;$i<count($order_id);$i++) 
      {    //根据订单查询food
         $order_id[$i]['flag']=0;
      }
        $i=0;
        foreach ($order_id as $key => $value) 
        {
           $list=array();
           $list['order_id']=$value['order_id'];   //获取订单号
           $list['flag']=0;
           $order_id[$i]['flag']=1;
           $id['food_id']=$value['food_id'];  
           $pic= \think\Db::name('food')    //通过订单的food_id查询pic
                ->field('pic')
                ->where($id)
                ->select();
           
           $food= \think\Db::name('food')    //通过订单的food_id查询foodname
                ->field('foodname')
                ->where($id)
                ->select();
           $price= \think\Db::name('food')    //通过订单的food_id查询price
                ->field('price')
                ->where($id)
                ->select();
           $num= \think\Db::name('order') //通过订单的food_id查询num，第一次循环的时候是将 num与food_id相对应
                ->field('num')
                ->where($id)
                ->select(); 
           $sum= \think\Db::name('order')    //通过订单的food_id查询sum，第一次循环的时候是将sum与food_id相对应
                ->field('sum')
                ->where($id)
                ->select();                           
           $list['foodname'][]=$food[0]['foodname'];  //将查到的数据保存到一个数组里
           $list['pic'][]=$pic[0]['pic'];  
           $list['price'][]=$price[0]['price'];
           $list['num'][]=$value['num'];
           $list['sum'][]=$value['sum'];//每一个子订单的总价,根据food_id直接从order表中读取,使得sum与food_id相对应
           $a=$list["sum"];
           $list["total"]=array_sum($a);//每一个父订单的总价，由若干个子订单的总价相加得到
           $i++;
           foreach ($order_id as $k => $v) //一个数组里我要找到和值相同的     那么我就在复制一个一模一样的数组，将这个数组里边的每一个值与另一个数组每一个比较，如果相等就把他所对应的信息保存起来，就相当于第二个循环中的数组就是用来和第一个循环中的数组进行数据比较的,也就是把相同的订单号的订单信息保存在一起

           {       
               //将相同的订单号里的food信息保存在一起
               if (($value['order_id']==$v['order_id'])&&$v['flag']!=1) 
               {
                   $id['food_id']=$v['food_id'];
                   $pic= \think\Db::name('food')
                        ->field('pic')
                        ->where($id)
                        ->select();
                   $food= \think\Db::name('food')
                        ->field('foodname')
                        ->where($id)
                        ->select();
                   $price= \think\Db::name('food')    //通过订单的food_id查询price
                         ->field('price')
                         ->where($id)
                         ->select();
                   // $num= \think\Db::name('order')//num的值已经出来了在order_id保存着，只不过通过第二次循环就可以拿到
                   //     ->field('num')
                   //     ->where($id)
                   //     ->select();     
                   $list['pic'][]=$pic[0]['pic'];
                   $list['foodname'][]=$food[0]['foodname'];
                   $list['price'][]=$price[0]['price'];
                   $list["num"][]=$v["num"];
                   $list["sum"][]=$v["sum"];
                   $a=$list["sum"];
                   // $b=array_sum($a);
                   $list["total"]=array_sum($a);
               }
           }
           $lists[]=$list; 
           //var_dump($list);die;
        }
        $a=array();
        $a=$lists;
        foreach ($lists as $key => $value) 
        {    
            //去掉重复的订单信息
            foreach ($a as $k => $v) 
            {
               if (($value['order_id']==$v['order_id'])&&($key!=$k)&&($v['flag']!=1)) 
               {
                  unset($lists[$k]);    
               } 
               $a[$key]['flag']=1;
            }
        }
       // var_dump($lists);die;
       $this->assign("lists",$lists);
       
      return $this->fetch();
    } 
}
